A scripting language is a programming language for writing computer programs in the form of scripts. Examples of scripting languages include JavaScript or ECMAScript, ActionScript, Dart, VBScript, Typescript, Ruby, and Python. A script is a program distributed as source code and executed by interpretation rather than compilation. Interpretation is advantageous because deployment and customization are simplified. These advantages make scripting well suited for adding custom behaviors to an already installed application, such as a web browser. Browser support has made JavaScript the most widely used programming language for the Internet.
Execution by interpretation may also present drawbacks for a scripting language. Since a script is distributed to a browser as source code, security and intellectual property are heightened concerns. Source code is vulnerable to reverse engineering, copying, spoofing, and cracking. For example, when script source code is delivered to a browser, malicious programs can alter the script source code for malicious purposes, such as capturing passwords, bank information, and other sensitive information, causing the browser to execute the maliciously altered script source code rather than the original script source code that the server computer generated. Algorithms and data are difficult to hide when source code is publicized.
Machine analysis is an important part of misuse of source code. For example, bots, compromised endpoints, or malicious software may attempt to read and analyze source code for malicious purposes. To achieve security by obscurity, techniques are needed to prevent or encumber machine analysis of scripts.